While the degree to which the OpenGL state machine is supported in hardware varies across the product line, virtualized direct access rendering requires functionality across all SGI graphics hardware configurations. The requirements are:
A context-switchable graphics engine. The state of the graphics hardware must be context-switchable and the context switch must be able to be performed preemptively, including in the middle of a command.
Window relative rendering. A process using virtual graphics renders using window relative coordinates, so that the window location need not be tracked if the window is moved.
Arbitrary window clipping. As mentioned earlier, a window system supporting arbitrarily overlapping windows, can result in arbitrary window clipping regions, so the hardware must support arbitrary clipping. And the window's clip and location can change asynchronously to the direct rendering process so the window clip must be able to change without the renderer's knowledge.
Double buffering. Support must exist for per-window double buffering. Also, OpenGL's front/back relative naming of buffers must be supported. A direct renderer should be unaware of the absolute hardware buffer it is rendering to.